package com.hzlh.utils;

import com.alibaba.fastjson.JSON;
import com.hzlh.common.Constants;
import com.hzlh.common.RedisKeys;
import com.hzlh.exception.GlobalException;
import com.hzlh.exception.ResponseCode;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;

import javax.servlet.http.HttpServletRequest;
import java.util.concurrent.TimeUnit;

@Component
@Slf4j
public class H5UserInfoUtil {

    @Autowired
    private StringRedisTemplate stringRedisTemplate;


    @Value("${spring.profiles.active}")
    private String profiles;
    @Value("${casclient.clientHost}")
    private String clientHost;
//
//    /*
//     * 获取登录用户信息
//     * 如果未登录直接返回错误码告知前端，如果成功返回用户信息 WxUser对象
//     * */
//    public WxCustomerInfo getWxUser(HttpServletRequest request) {
//
//        if("dev".equals(profiles)){
//            String remoteAddr = request.getRemoteAddr();
//            if(clientHost.contains(remoteAddr)){
//                String str = "{\n" +
//                        "  \"country\": \"中国\",\n" +
//                        "  \"customerPhone\": \"13819175840\",\n" +
//                        "  \"gender\": 1,\n" +
//                        "  \"province\": \"浙江\",\n" +
//                        "  \"city\": \"杭州\",\n" +
//                        "  \"nickName\": \"褚克勤\",\n" +
//                        "  \"openId\": \"oXf-p5Dnt7ciE1vkX3UmJ69gmdKU\",\n" +
//                        "  \"customerId\": \"R20210224PFK5jP\",\n" +
//                        "  \"userIcon\": \"https://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTIvfcicLgibga3ibQiaIckOYmnKmYqLGhZWGFtBQy2ria749bAQ0AQKdgm62EuXhia1PaqoCzyahUI1rwmA/132\",\n" +
//                        "  \"orgId\": \"10001\"\n" +
//                        "}";
//                return JSON.parseObject(str, WxCustomerInfo.class);
//            }
//        }
//
//
//        String h5Token = request.getHeader(Constants.H5_TOKEN_NAME);
//        if(StringUtils.isEmpty(h5Token)) {
//            h5Token = request.getParameter("ht");
//        }
//        if (StringUtils.isEmpty(h5Token)) {
//            throw new GlobalException(ResponseCode.UN_LOGIN);
//        }
//        String h5User = stringRedisTemplate.opsForValue().get(RedisKeys.login_user + h5Token);
//        if (StringUtils.isEmpty(h5User)) {
//            // 严格校验，控制器不用考虑获取不到用户的情况
//            throw new GlobalException(ResponseCode.UN_LOGIN);
//        }
//        WxCustomerInfo wxUser = JSON.parseObject(h5User, WxCustomerInfo.class);
//        if (wxUser == null) {
//            // 严格校验，控制器不用考虑获取不到用户的情况
//            throw new GlobalException(ResponseCode.UN_LOGIN);
//        }
//        stringRedisTemplate.expire(RedisKeys.login_user + h5Token, 15, TimeUnit.MINUTES);
//        stringRedisTemplate.expire("SH5CHECK" + wxUser.getOpenId(), 15, TimeUnit.MINUTES);
//        return wxUser;
//    }
//
//    /*
//     * 获取登录用户信息不用登录
//     * 如果未登录直接返回错误码告知前端，如果成功返回用户信息 WxUser对象
//     * */
//    public WxCustomerInfo getWxUserNotLogin(HttpServletRequest request) {
//        String h5Token = request.getHeader(Constants.H5_TOKEN_NAME);
//        String h5User = stringRedisTemplate.opsForValue().get(RedisKeys.login_user + h5Token);
//        if (!StringUtils.isEmpty(h5User)) {
//            WxCustomerInfo wxUser = com.alibaba.fastjson.JSON.parseObject(h5User, WxCustomerInfo.class);
//            return wxUser;
//        }
//        return null;
//    }

}
